package main

import (
	"fmt"
	"math/rand"
)

func main() {
	//go语言中的算术运算符
	//与其他编程语言相同，go语言同样提供了+,-,*,/,%分别对应了加减乘除取余五种操作
	//打印函数
	//Print(),Println()都引入至fmt这个包，使用前需要先导入这个包，两个方法都可以传递若干参数，中间用逗号隔开，参数可以为数字，字符串和表达式等
	//格式化打印
	//可以使用Printf来控制打印输出的结果，与Print与Println不同，Printf()第一个参数必须是字符串，且字符串包含了像“%v”这样的格式化动词，其值由第二个参数代替，若有多个格式化动词，他们的值按后面参数的顺序进行替换
	//常用的格式化动词
	//	1.%p：将一个指针的十六位进制值打出来
	//	2.%d：以十进制格式输出整数
	//	3.%f：以浮点数格式输出浮点数
	//	4.%s：以字符串格式输出字符串
	//	5.%t：以布尔类型输出false或者true
	//	6.%T：输出变量类型

	//例:
	fmt.Print(32+21, "个", "\n")
	fmt.Print(57-32, "个", "\n")
	fmt.Println(34*12, "个")
	fmt.Println(72/9, "个")
	fmt.Print(97%4, "个", "\n")
	fmt.Printf("今年是%v年\n", 2000+23)

	//常量和变量的申明
	//const申明的是常量，var申明的是变量
	//同时申明多个变量的几种形式
	const theNumberOne int = 32
	var theNumberTwo int = 76
	fmt.Printf("两数相减最后的结果是%v\n", theNumberTwo-theNumberOne)
	const theNumberThree, theNumberFour int = 43, 78
	var (
		theNumberFive int = 7
		theNUmberSix  int = 8
	)
	fmt.Println(theNumberFive, theNUmberSix)

	//go语言中的赋值运算符 +=,-=,*=,/=,%=,和其他语言一样
	//go语言中的自增操作，go中只有 +=和a++没有++a
	var theNumberSeven int = 89
	theNumberSeven++
	theNumberSeven += 1
	//++theNumberSeven

	//go语言中的随机数可以使用rand包的Intn方法 ，需要导入“math/rand”包
	var theNumberEight int = rand.Intn(10) //其中Intn(10)生成的数是[0，10)这个区间，左闭右开，所以生成的数可能是0到9
	fmt.Println(theNumberEight)

	//练习题
	//编写程序来确定飞船要在28天内到达火星,假设距离为56000000公里,需要的速度是多少(公里/小时)
	//1.首先将时间单位化成小时
	const distance = 56000000
	const time = 28 * 24
	//2.再由速度等于路程除以时间得到
	var speed int = distance / time
	fmt.Printf("%v公里每小时", speed)
}
